#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int HPDataType;
typedef struct Heap
{
    HPDataType* arr;
    int size;
    int capacity;
}HP;
void HpInit(HP* php);
void HpDestroy(HP* php);
//插入
void HPPush(HP* php,HPDataType x);
//出堆
void HPPop(HP* php);
//取堆顶元素
HPDataType HPTop(HP* php);
bool HPEmpty(HP* php);
void Swap(int* x,int* y);
//向上调整算法
//O(logN)
void Adjustup(HPDataType* arr,int child);
//向下调整算法
void Adjustdown(HPDataType* arr,int parent,int n);//形参包括（数组，根节点，总节点数（防止越界））
